/**
 * @file ExceptionDeVersion.h
 * @author Pierre Le Bodic
 * @date lundi 12 décembre
 */

#include <exception>
#include <string>

#ifndef _EXCEPTION_DE_VERSION_H_
#define _EXCEPTION_DE_VERSION_H_

namespace gestionnaireDeVersions {
   using std::string;
/**
 * Représente une exception pouvant survenir dans le cadre de la gestion
 * de versions.
 */
class ExceptionDeVersion : std::exception {
   private:
   ///La chaîne de caractères comprenant l'annonce et le message spécifique à l'exception
      string info;
      
   public:
   /**
    * Construit une instance d'exception de version qui initialize la
    * chaîne de caractère info à
    * "Une exception de version est survenue : " + message, càd qu'on y
    * concatène le texte en paramètre, qui renseigne sur l'exception.
    * @param message Un texte décrivant l'exception.
    */
   ExceptionDeVersion(string message);
   
   /**
    * Constructeur par copie
    */
   ExceptionDeVersion(ExceptionDeVersion const&);
   
   /**
    * Constructeur par affectation
    */
   void operator=(ExceptionDeVersion const&);
   
   ~ExceptionDeVersion() throw(){}
   
   /**
    * Retourne une chaîne de caractère spécifique à l'exception.
    * @return Le message de l'exception.
    */
   virtual const char* what() const throw();
};

}//namespace

#endif // _EXCEPTION_DE_VERSION_H_
